The XML (eXtended Markup Language) provides a standard way of tagging data so that the data can be read and interpreted in a variety of ways such as by Web browsers. XML documents are used extensively in daily transactions. An XML Schema is a W3C (World Wide Web Consortium) standard that defines a schema definition language for an XML data model. Schema definitions can be used to validate the content and the structure of XML instance documents.
Normally, an XML Schema is used to define the data format used in an XML document. If an XML document is to be updated, the updated information must conform to the constraints placed on the document by the associated schema. The XML Schema document is an XML document that is expressed in a different way than the tables and columns of a relational database system. The type information supplied in an XML Schema document can also be used to check XML queries for correctness, and optimize XML queries and XML storage. Thus, verification that the data to be placed into the XML document meets the schema constrains is an important consideration. In some instances, XML documents can be large. An example could be a customer list where a large number of customers are listed along with their customer numbers and one or more addresses and other relevant customer information. This information may be useful to transfer from one location to another via an XML format, but it is also useful to edit or use the information via a relational database. The XML data stored in the relational database may be stored as a binary large object (BLOB). Thus, if updates to the customer list were needed, then the structure of the stored data in the relational database storage must also match the schema.
Having the capability to store XML Schema documents in relational structures has at least the following advantages. The type definitions can be searched efficiently using relational index structures instead of parsing the XML Schema documents. Appropriate pieces of the XML schema documents (e.g., CustomerType definition) can be selectively loaded into memory buffers for validations of XML instances, which provide a significant performance improvement. And SQL (Structured Query Language) views can be provided on the relational storage for relational users to know about stored XML Schema documents. But, the techniques for manipulating data between SQL and XML are limited and some exact a heavy toll on SQL performance because of the verification of the entire XML document when an update to only a portion of the document is being made.